import axios from 'axios'

// 创建 axios 实例，统一配置 baseURL 指向 Django 后端 API
const service = axios.create({
  baseURL: 'http://127.0.0.1:8000', // 修改为后端 API 地址
  headers: {
    'Content-Type': 'application/json',
  }
})

// // 添加请求拦截器，每次请求自动携带token
// service.interceptors.request.use(
//   config => {
//     const token = localStorage.getItem('token')
//     if (token) {
//       config.headers['Authorization'] = `Bearer ${token}`
//     }
//     return config
//   },
//   error => {
//     return Promise.reject(error)
//   }
// )

// RESTful API 风格的请求方法
export const http = {
    get(url, params) {
      // 如果params已经是一个包含params属性的对象，直接使用
      // 否则将params作为查询参数
      if (params && params.params) {
        return service.get(url, params);
      } else {
        return service.get(url, { params });
      }
    },
  
    post(url, data) {
      return service.post(url, data);
    },
  
    put(url, data) {
      return service.put(url, data);
    },
  
    delete(url, params) {
      return service.delete(url, { params });
    },
  
    // 文件上传方法（支持自定义FormData内容）
    upload(url, dataOrFile, onProgress) {
      let formData;
      if (dataOrFile instanceof FormData) {
        formData = dataOrFile;
      } else {
        formData = new FormData();
        formData.append("file", dataOrFile);
      }
      return service.post(url, formData, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
        onUploadProgress: (progressEvent) => {
          if (onProgress) {
            const progress = Math.round(
              (progressEvent.loaded * 100) / progressEvent.total
            );
            onProgress(progress);
          }
        },
      });
    },
  };

export default service 